window.websocket = new WebSocket("ws://localhost:8888/websocket");

//判断当前浏览器是否支持WebSocket
if('WebSocket' in window){
    // if (websocket === null) {
    //     websocket = new WebSocket("ws://localhost:8888/websocket");
    //     sessionStorage.setItem("websocket", websocket);
    // }

}
else{
    alert('不支持在线聊天')
}

//连接发生错误的回调方法
websocket.onerror = function(){
    // setMessageInnerHTML("error");
};

//连接成功建立的回调方法
websocket.onopen = function(event){
    // setMessageInnerHTML("open");
}

//接收到消息的回调方法
websocket.onmessage = function(event){
    let result = JSON.parse(event.data);
    // 判断是否已经查询过对应聊天记录, 如果没有, 则从服务器中获取聊天记录, 否则在 sessionStorage 对应记录中新增一笔
    if (result.hasOwnProperty("fromUsername")) {
        let fromUsername = result.fromUsername;
        let data = sessionStorage.getItem('chatUser-' + fromUsername);
        // 如果本地已经缓存了资料
        if (data !== null) {
            // debugger;
            let array = JSON.parse(data);
            // 时间转换
            let dateStr = new Date(result.date).format("yyyy/MM/dd hh:mm");
            let myData = {
                "type" : 1, // 1表示对方发送消息给本方
                "message" : result.message,
                "date" : dateStr,
            };
            array.unshift(myData);
            sessionStorage.setItem('chatUser-' + fromUsername, JSON.stringify(array));
            // 判断当前是否是聊天页面 && sessionStorage.getItem('chatUser') =  fromUsername
            if (getUrlPara() === "pages/chat/chat" && sessionStorage.getItem('chatUser') ===  fromUsername) {
                appendInfo(myData);
            }
        } else {
            // 如果没有缓存资料, 通过 Ajax 进行查询最近20笔聊天记录

        }
    } else {
        alert("服务器出错!");
    }
}

//连接关闭的回调方法
websocket.onclose = function(){
    setMessageInnerHTML("close");
}

//监听窗口关闭事件，当窗口关闭时，主动去关闭websocket连接，防止连接还没断开就关闭窗口，server端会抛异常。
window.onbeforeunload = function(){
    websocket.close();
}

let WEBSOCKET = {};
WEBSOCKET.sendMessage  = function(text){
    let data = {
        "toUsername" : sessionStorage.getItem('chatUser'),
        // "toUsername" : "all",
        "message" : text,
    };
    // 发送消息至后台
    websocket.send(JSON.stringify(data));
};
//将消息显示在网页上
function setMessageInnerHTML(innerHTML){
    // document.getElementById('message').innerHTML += innerHTML + '<br/>';
}

//关闭连接
function closeWebSocket(){
    websocket.close();
}
